↳ Prolog
↳ PrologToPiTRSProof
p_in_g(.(X, [])) → p_out_g(.(X, []))
p_in_g(.(s(s(X)), .(Y, Xs))) → U1_g(X, Y, Xs, p_in_g(.(X, .(Y, Xs))))
p_in_g(.(0, Xs)) → U3_g(Xs, p_in_g(Xs))
U3_g(Xs, p_out_g(Xs)) → p_out_g(.(0, Xs))
U1_g(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → U2_g(X, Y, Xs, p_in_g(.(s(s(s(s(Y)))), Xs)))
U2_g(X, Y, Xs, p_out_g(.(s(s(s(s(Y)))), Xs))) → p_out_g(.(s(s(X)), .(Y, Xs)))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
p_in_g(.(X, [])) → p_out_g(.(X, []))
p_in_g(.(s(s(X)), .(Y, Xs))) → U1_g(X, Y, Xs, p_in_g(.(X, .(Y, Xs))))
p_in_g(.(0, Xs)) → U3_g(Xs, p_in_g(Xs))
U3_g(Xs, p_out_g(Xs)) → p_out_g(.(0, Xs))
U1_g(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → U2_g(X, Y, Xs, p_in_g(.(s(s(s(s(Y)))), Xs)))
U2_g(X, Y, Xs, p_out_g(.(s(s(s(s(Y)))), Xs))) → p_out_g(.(s(s(X)), .(Y, Xs)))
P_IN_G(.(s(s(X)), .(Y, Xs))) → U1_G(X, Y, Xs, p_in_g(.(X, .(Y, Xs))))
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
P_IN_G(.(0, Xs)) → U3_G(Xs, p_in_g(Xs))
P_IN_G(.(0, Xs)) → P_IN_G(Xs)
U1_G(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → U2_G(X, Y, Xs, p_in_g(.(s(s(s(s(Y)))), Xs)))
U1_G(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → P_IN_G(.(s(s(s(s(Y)))), Xs))
p_in_g(.(X, [])) → p_out_g(.(X, []))
p_in_g(.(s(s(X)), .(Y, Xs))) → U1_g(X, Y, Xs, p_in_g(.(X, .(Y, Xs))))
p_in_g(.(0, Xs)) → U3_g(Xs, p_in_g(Xs))
U3_g(Xs, p_out_g(Xs)) → p_out_g(.(0, Xs))
U1_g(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → U2_g(X, Y, Xs, p_in_g(.(s(s(s(s(Y)))), Xs)))
U2_g(X, Y, Xs, p_out_g(.(s(s(s(s(Y)))), Xs))) → p_out_g(.(s(s(X)), .(Y, Xs)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
P_IN_G(.(s(s(X)), .(Y, Xs))) → U1_G(X, Y, Xs, p_in_g(.(X, .(Y, Xs))))
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
P_IN_G(.(0, Xs)) → U3_G(Xs, p_in_g(Xs))
P_IN_G(.(0, Xs)) → P_IN_G(Xs)
U1_G(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → U2_G(X, Y, Xs, p_in_g(.(s(s(s(s(Y)))), Xs)))
U1_G(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → P_IN_G(.(s(s(s(s(Y)))), Xs))
p_in_g(.(X, [])) → p_out_g(.(X, []))
p_in_g(.(s(s(X)), .(Y, Xs))) → U1_g(X, Y, Xs, p_in_g(.(X, .(Y, Xs))))
p_in_g(.(0, Xs)) → U3_g(Xs, p_in_g(Xs))
U3_g(Xs, p_out_g(Xs)) → p_out_g(.(0, Xs))
U1_g(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → U2_g(X, Y, Xs, p_in_g(.(s(s(s(s(Y)))), Xs)))
U2_g(X, Y, Xs, p_out_g(.(s(s(s(s(Y)))), Xs))) → p_out_g(.(s(s(X)), .(Y, Xs)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
P_IN_G(.(0, Xs)) → P_IN_G(Xs)
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
P_IN_G(.(s(s(X)), .(Y, Xs))) → U1_G(X, Y, Xs, p_in_g(.(X, .(Y, Xs))))
U1_G(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → P_IN_G(.(s(s(s(s(Y)))), Xs))
p_in_g(.(X, [])) → p_out_g(.(X, []))
p_in_g(.(s(s(X)), .(Y, Xs))) → U1_g(X, Y, Xs, p_in_g(.(X, .(Y, Xs))))
p_in_g(.(0, Xs)) → U3_g(Xs, p_in_g(Xs))
U3_g(Xs, p_out_g(Xs)) → p_out_g(.(0, Xs))
U1_g(X, Y, Xs, p_out_g(.(X, .(Y, Xs)))) → U2_g(X, Y, Xs, p_in_g(.(s(s(s(s(Y)))), Xs)))
U2_g(X, Y, Xs, p_out_g(.(s(s(s(s(Y)))), Xs))) → p_out_g(.(s(s(X)), .(Y, Xs)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
P_IN_G(.(0, Xs)) → P_IN_G(Xs)
U1_G(Y, Xs, p_out_g) → P_IN_G(.(s(s(s(s(Y)))), Xs))
P_IN_G(.(s(s(X)), .(Y, Xs))) → U1_G(Y, Xs, p_in_g(.(X, .(Y, Xs))))
p_in_g(.(X, [])) → p_out_g
p_in_g(.(s(s(X)), .(Y, Xs))) → U1_g(Y, Xs, p_in_g(.(X, .(Y, Xs))))
p_in_g(.(0, Xs)) → U3_g(p_in_g(Xs))
U3_g(p_out_g) → p_out_g
U1_g(Y, Xs, p_out_g) → U2_g(p_in_g(.(s(s(s(s(Y)))), Xs)))
U2_g(p_out_g) → p_out_g
p_in_g(x0)
U3_g(x0)
U1_g(x0, x1, x2)
U2_g(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
P_IN_G(.(0, Xs)) → P_IN_G(Xs)
P_IN_G(.(s(s(X)), .(Y, Xs))) → U1_G(Y, Xs, p_in_g(.(X, .(Y, Xs))))
Used ordering: Combined order from the following AFS and order.
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
U1_G(Y, Xs, p_out_g) → P_IN_G(.(s(s(s(s(Y)))), Xs))
0 > [poutg, []]
U1g3 > [.2, U1G2] > [poutg, []]
U1G2: [2,1]
[]: multiset
0: multiset
poutg: multiset
U1g3: multiset
.2: [2,1]
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
U1_G(Y, Xs, p_out_g) → P_IN_G(.(s(s(s(s(Y)))), Xs))
p_in_g(.(X, [])) → p_out_g
p_in_g(.(s(s(X)), .(Y, Xs))) → U1_g(Y, Xs, p_in_g(.(X, .(Y, Xs))))
p_in_g(.(0, Xs)) → U3_g(p_in_g(Xs))
U3_g(p_out_g) → p_out_g
U1_g(Y, Xs, p_out_g) → U2_g(p_in_g(.(s(s(s(s(Y)))), Xs)))
U2_g(p_out_g) → p_out_g
p_in_g(x0)
U3_g(x0)
U1_g(x0, x1, x2)
U2_g(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
p_in_g(.(X, [])) → p_out_g
p_in_g(.(s(s(X)), .(Y, Xs))) → U1_g(Y, Xs, p_in_g(.(X, .(Y, Xs))))
p_in_g(.(0, Xs)) → U3_g(p_in_g(Xs))
U3_g(p_out_g) → p_out_g
U1_g(Y, Xs, p_out_g) → U2_g(p_in_g(.(s(s(s(s(Y)))), Xs)))
U2_g(p_out_g) → p_out_g
p_in_g(x0)
U3_g(x0)
U1_g(x0, x1, x2)
U2_g(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
p_in_g(x0)
U3_g(x0)
U1_g(x0, x1, x2)
U2_g(x0)
p_in_g(x0)
U3_g(x0)
U1_g(x0, x1, x2)
U2_g(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
No rules are removed from R.
P_IN_G(.(s(s(X)), .(Y, Xs))) → P_IN_G(.(X, .(Y, Xs)))
POL(.(x1, x2)) = 2·x1 + x2
POL(P_IN_G(x1)) = 2·x1
POL(s(x1)) = 2·x1
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof